/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package formula.one.urjc.dueño.controlador;

import formula.one.urjc.Metodos;
import formula.one.urjc.dueño.view.VentanaDueñoCoches;
import formula.one.urjc.dueño.view.ventanaAviso;
import formula.one.urjc.escuderia.Coche;
import formula.one.urjc.escuderia.CualidadesCoche;
import formula.one.urjc.escuderia.Escuderia;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 *
 * @author Javier Aparicio García
 */
public class DueñoEscuderiaCochesControlador implements ActionListener{
    VentanaDueñoCoches vista;
    Metodos modelo;
    Escuderia escuderia;

    public DueñoEscuderiaCochesControlador(Metodos modelo, Escuderia escuderia) {
        this.modelo = modelo;
        this.escuderia = escuderia;
        this.vista=new VentanaDueñoCoches();
        vista.getjBtCrear().addActionListener(this);
        vista.getjBtVolver().addActionListener(this);
    }
    
    public VentanaDueñoCoches mostrarPantalla(){
      //aplico las propiedades a la vantana
        //que no se pueda cambiar el tamaño
        vista.setResizable(false);
        // que se muestre
        vista.setVisible(true);
        //añado los controles de los botones
        return vista;
    }

    @Override
    public void actionPerformed(ActionEvent ae) {
        //botón crear coche
        if(vista.getjBtCrear()==ae.getSource()){
          Boolean añadido=false;
          String modeloCoche=vista.getjTextModelo().getText();
          if(modeloCoche.isEmpty()){
              ventanaAviso.mostrarError(vista, "No puede crearse un coche con el campo 'Modelo' vacío", "Error crear coche");
          }else{
            //se crea el objeto coche
            double potencia=Double.parseDouble(vista.getjCBPotencia().getSelectedItem().toString());
            double aerodinamica=Double.parseDouble(vista.getjCBAero().getSelectedItem().toString());
            double ruedas=Double.parseDouble(vista.getjCBRuedas().getSelectedItem().toString());
            CualidadesCoche cC=new CualidadesCoche(potencia, aerodinamica, ruedas);
            Coche c=new Coche(modeloCoche, cC);
            //añado el objeto a la escuderia si es posible
            for(int i=0;i<escuderia.getCoches().length;i++){
                //si hay espacio
                if(escuderia.getCoches()[i]==null){
                  escuderia.getCoches()[i]=c;
                  añadido=true;
                  
                  break;
                }
            }
            //si no se ha añadido es porque no había sitio
            if(!añadido){
               ventanaAviso.mostrarError(vista, "No pueden añadirse más coches a esta escudería", "Error crear coche"); 
            }else{
                modelo.modificarEscuderia(escuderia);
            }
          }
         
        }else if(vista.getjBtVolver()==ae.getSource()){
           vista.dispose();
           
        }
    }
    
}
